Installing and using Windows applications on Linux

Undoubtedly, if you are using Linux everyday, you may eventually need to run software that is only available on Windows. Firstly, if you have Wine set up, just click on the programs installer or exe file and see if it runs to completion - often you will be presently surprised that the exe "just works". Wine should automatically place a shortcut to the installed app on your Linux desktop if it succeeded, so you can run it again in future. If it doesn't work or needs direct USB/hardware access, then you may need to resort to using it within a minimal Windows VM.

Wine is a subsystem for running Windows exes on Linux. It runs them within a “context” which is a folder containing a full simulation of a typical Windows file-system (containing C:\Windows, C:\Program Files\ etc), with all the basic OS libraries, registry and settings to run it. Within each context (which could be 32 or 64 bit... usually 32 is more stable) you can install multiple applications and dependencies (like .NET or its open-source equivalent Mono). Often you may want a separate context for each Windows program (this is how Play On Linux typically works).

https://itsfoss.com/use-windows-applications-linux/ First try using PlayonLinux as it is normally easiest, and see how far you get. For games you could try Lutris. You can also try Install wine and winetricks separately and follow some tips below:

Virtual Box works surprisingly well but requires a few seconds to boot up or save/restore machine state. Most USB devices can be shared and files can be drag and drop between host and target. Other VM software can be used such as QEMU/KVM and VMWare but Virtual Box is easy to use. Performance is good enough for office work but it can eat up RAM. If you have a GPU capable of pass-through you can achieve excellent performance and even play games.

  • Install the latest version of VirtualBox as long as your host and target are 64 bit and the host has hardware virtualisation.
  • Download the latest Windows 10 Image.
  • Create a new Windows 10 VM. I used 4GB Ram, 2 CPUs, 50GB volume, GPU acceleration on, VBoxSVGA, 128MB video memory, Acceleration: Hyper-V or KVM.
  • Insert Win 10 image and install. You do not need a product key to activate, you just get a minor nag message in settings but otherwise it works fine.
  • Once installed, make sure you install Guest Additions CD on target and VirtualBox Extension Pack on host.
  • To make things work seamlessly, enable these VM settings:
    • Drag and drop
    • Pass through audio and optionally webcam
    • Share clipboard
    • Optionally you can set up a shared folder which maps a hosts folder to a drive letter on the target.
    • Optionally if you want to use USB devices directly (e.g. external Bitlocker HDD or to update firmware on a keyboard), you should enable permissions (run sudo -a <username> vboxusers then restart PC) and USB filter in VirtualBox settings. Then you will be able to connect USB devices directly to the VM at the hardware level through the Virtual Box menus when the VM is running.
  • To make the VM shutdown safely when closed by host:
    • In the Windows VM open the start menu and type "Choose a power plan" and press enter.
    • Then click "Choose what the Power buttons do" and set Power Button to Shutdown.
  • If there are graphical glitches or performance issues, turn OFF GPU acceleration and see if it improves.
  • Would recommend to run a Windows 10 debloat to remove crap-ware and speed things up as wel las reduce used space.
  • You can also speed up boot at the expense of security by disabling login password.

Other possibilities for running Windows apps on Linux:

  • React OS - and open source reverse engineering of Windows (could do a VM or dual boot)
  • Dual boot Windows 10
  • Run your own Windows PC or cloud Windows VM and remote into it.

Microsoft Office options

Yes I know, there is no true replacement for locally installed Microsoft Office. Google docs, Libre, Open Office (even Microsoft’s own Office Online and mobile versions) do not preserve formatting of files created in MS Office. It is available for Windows and Mac only, so here are your alternatives:

  • MS Office online (or mobile, Windows store versions):
    • Not good for docs, destroys formatting even worse than open office or Google docs. Even Microsoft says it is broken and don’t think they want to fix it.
    • Excel online is ok unless you use advanced features
    • Collaboration is near-useless.
  • Google Docs
    • OK, some formatting differences, great for collaboration
    • Can directly edit word doc without converting to gdoc
  • Libre Office:
    • OK, some minor formatting differences.
  • Windows 10 VM on Virtual Box with ANY version of Office installed
    • Good option if you have a decent PC, as it just works perfectly
    • You dont need a Win 10 activation code/license
    • See instructions above about using Virtual Box
  • Wine/PlayOnLinux (Good ONLY if you have Office 2007):

Skype for Business (Lync)

If you have to talk to a crummy corporate in order to take some of the money they hoard, most likely you will be using some old-ass version of Lync or S4B. Unlikely Microsoft will be making a Linux client any time soon, nor a “just works” web version, as it is End-of-Life in July 2021 (although most corporates no doubt will continue to use their onsite version for another decade). They are doing a Teams client for Linux so they might change their ways for future products.

Options:

  • Virtual Box (Win 10 virtual machine works perfectly but you can’t use screen share for Linux host apps). This is the best option to me. Instructions in above section.⭐
  • https://tel.red/linux.php (paid)
  • Dual booting into Windows or using another Windows PC.

Running Adobe Applications

Anything made by Adobe doesn’t work in Linux and I doubt they will make it work because its not only a tiny user-base but Adobe's strong proprietary culture is extremely opposite to Linux, and the users will mostly use FOSS alternatives anyway. There is potential they may remake some tools into limited web app versions running on the cloud in the long term future. There was once a Linux version of Acrobat Reader but that ended in 2013 so it’s not recommended. Here are some options:

  • Install Adobe applications on a Windows Virtual Box VM. Works flawlessly with the right GPU and pass-through.
  • Install Adobe applications using Wine or PlayOnLinux (Acrobat and Lightroom may work through Wine).
  • Some apps may be packaged such as Acrobat Reader: https://snapcraft.io/acrordrdc
  • Try Android or Chrome OS versions of Adobe apps using Anbox.
  • Use a Linux compatible FOSS replacement for Adobe tools:
Adobe AppAlternative
Acrobat ReaderDocument Viewer (Ubuntu default evince)
Chrome browser
Acrobat DC
PDF Arranger (arrange/merge pages)
Foxit Reader (add text, forms, signatures)
LibreOffice Draw or Inkscape (deep content edits)
Qoppa PDF Studio
Premier ProKdenLive, Blender (surprisingly good), Davinci Resolve ($)
After EffectsNatron
AuditionAudacity (or Tenacity)
Ardour
PhotoshopGimp (with useful plugins)
Krita
LightroomDarkTable
Lightroom 4.4 (Wine or VM)
IllustratorInkscape
InDesignScribus
DreamweaverBlue Griffon (free and $), Firefox Developer Edition

Running Mac OSX Applications

Even though the Darwin kernel underlying Mac OS is open source and Unix-based, there is a heavy layer of proprietary libraries over the top. The only real option is to run apps in a VM either locally or in the cloud.

This tutorial worked perfectly in Ubuntu with VirtualBox but framerate is a bit slow without a compatible GPU support

Other options:

Run Android apps on Ubuntu using Anbox

This is EXPERIMENTAL. For Ubuntu the required anbox-modules did not install in the kernel properly (maybe due to secure boot), so I followed the details instructions here from source: https://github.com/anbox/anbox-modules You will then need to reboot and do the trusted UEFI key install (using the password you entered during module install).

Then install anbox via the PPA https://docs.anbox.io/userguide/install.html https://github.com/anbox/anbox/blob/master/docs/install.md https://www.linuxuprising.com/2018/07/anbox-how-to-install-google-play-store.html

To get audio/video playback working: Run:

sudo snap set anbox rootfs-overlay.enable=true

Download media_codecs.xml.txt and run:

sudo cp media_codecs.xml.txt /var/snap/anbox/common/rootfs-overlay/system/etc/media_codecs.xml

Reboot. More info.

UPDATE 2022: With a kernel 5.18 or higher, ashmem has been completely removed in favour of memfd, so as long as Anbox still uses ashmem (it is a huge dev task to change it to memfd, so its not happenening any time soon), there is a complex process to get it back again. A more foolproof way might be to install Android-x86 in a VirtualBox or other VM software.

Running Java Applications

Java is cross platform but Ubuntu ships with the OpenJDK which may not run some Java apps. You can instead get the official Oracle/Sun proprietary version. After installing, switch alternatives for java using:

sudo update-alternatives --config java

Install Windows core fonts (Arial, Times Roman etc)

Recommended to install using:

sudo apt-get install ttf-mscorefonts-installer
sudo fc-cache -f

After that, check with:

fc-match Arial

PDF handling

  • View and annotate PDFs:

    • Okular has superior annotation features and good touch support. Install flatpak version on Gnome.
    • EVince is recommended for a fast minimalist viewer with multi-touch and night-mode. Be sure to enable larger zoom levels using this command:
      gsettings set org.gnome.Evince page-cache-size 500
    • Or built in Document Viewer for your desktop environment or Chrome or Firefox.
  • Edit, Delete, Join and Reorder pages in pdfs:

    pdfarranger

  • Sign and edit pdf content:

    • Master PDF (paid) Really snappy and full featured PDF editor. Give it a try with free version (watermarks).

    • Qoppa PDF Studio (paid) Slower start time (Java) but extremely powerful well featured PDF editor, with very easy to use PDF signing and editing. The closest thing to Adobe Acrobat DC, and worth the money if you are looking for something equivalent.

    • Okular Latest version can sign PDFs using certificates stored in Firefox. It cannot create certificates though. To create a certificate for signing PDFs in Okular:

      1. Create a self-signed certificate. Suggest making it last 5 years (1825 days). This will give you the public key/cert (.crt) and private key (.key).
      2. Then convert these to one password protected certificate (.pfx) file containing both private and public keys: openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt
      3. Now import this into Firefox. Go to Settings > Privacy & Security > Certificates > View Certificates. Go to Your Certificates and click Import... and select the .pfx file.
      4. Now you will be able to select this certificate to digitally sign your PDFs in Okular.
    • Foxit Reader (Linux native, outdated)

      Warning: There may be a bug causing Foxit to crash on save, after filling in and adding signature to a form, when run using a .desktop or menu launcher. Test if it happens to you. Fix it by running Foxit from terminal using /opt/foxitsoftware/foxitreader/FoxitReader.sh %F
      OR
      Edit the .desktop launcher so that it runs in a terminal.

    • Foxit Reader (Windows version via Wine)

      UPDATE: doesn't really work in Wine anymore?

      The Linux version of Foxit is outdated and buggy and it is unclear whether it will be updated. A better option may be to install and run the Windows version using Wine. If you have Wine installed, just download the windows installer for Foxit and install it and it should work perfectly within Linux.

  • Print to PDF
    Some apps like gEdit and Chrome have built-in save to PDF support. For generic print to PDF support for all apps: sudo apt-get install printer-driver-cups-pdf

Other work applications

Personal finance

HomeBank for a quality local application with CSV import Firefly III for a comprehensive self-hosted app including mobile support.

Change default text editor (in this case to notepadqq)

sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /usr/bin/notepadqq 50
sudo update-alternatives --config gnome-text-editor

Libby/Overdrive library and Kindle ebooks

Use Web version Libby: https://libbyapp.com/shelf Use Web version of Kindle: https://read.amazon.com